package urlqueue

// URLQueue 定义 URL 列队的方法
type URLQueue interface {
	// Push 添加一条 URL
	Push(rawurl, refererUrl string) error

	// ForcePush 强制添加一条 URL，即使之前存取过。
	// 有时候取出了 URL，但因为网络原因访问失败，所以需要重新入列
	ForcePush(*MyURL) error

	// Pop 取出一条 URL
	Pop() (*MyURL, error)

	// GetQueueLen 返回列队的长度
	GetQueueLen() (int64, error)

	// GetTotalNumber 返回已经添加过的 URL 数量
	GetTotalNumber() (int64, error)
}
